#ifndef TEKSTURA_H__
#define TEKSTURA_H__

#include <windows.h>

#include "GL/GL.H"
#include "gl/glaux.h"

class Tekstura
{
protected:
      GLuint      id_teksture;
      GLenum      tip_teksture;
public:
      Tekstura(GLenum target);
      virtual ~Tekstura();

      virtual void napraviTeksturu() = 0;
      virtual void primeniTeksturu();
};

class BMPTekstura : public Tekstura
{
protected:
      char *imeFajla;
      AUX_RGBImageRec *citajFajl();

public:
      BMPTekstura(char *_imeFajla, GLenum tip)
      : Tekstura(tip), imeFajla(_imeFajla)
      {
      }
};

class BMPTekstura1D : public BMPTekstura
{
public:
      BMPTekstura1D(char *_imeFajla)
      : BMPTekstura(_imeFajla, GL_TEXTURE_1D)
      {
      }

      virtual void napraviTeksturu();
};

class BMPTekstura2D : public BMPTekstura
{
public:
      BMPTekstura2D(char *_imeFajla)
      : BMPTekstura(_imeFajla, GL_TEXTURE_2D)
      {
      }

      virtual void napraviTeksturu();
};

#endif